# -*- coding=utf-8 -*-
"""
appium实现微信小程序的测试
"""

import time

from appium import webdriver

# 设置启动配置项目
desired_caps = {
    "automationName": "UiAutomator2",  # 默认框架
    "platformName": "Android",  # 指定操作系统
    "platformVersion": "9",  # 指定系统版本
    "deviceName": "HXJNW18420012584",  # 指定设备名称
    "appPackage": "com.tencent.mm",  # 被操作的应用程序包名
    "appActivity": "com.tencent.mm.ui.LauncherUI",  # 启动页面
    "noReset": True,  # 为true 不重置  为false 重置
    "chromedriverExecutable": "D:\\chromedriver\\chromedriver.exe",
    # 启用x5内核，而不是用android.system.webview,这个参数默认是启动android.system.webview
    "recreateChromeDriverSessions": True,
    # 切换webview，小程序是哪个webview---》指定微信小程序的进程名称
    "chromeOptions": {'androidProcess': "com.tencent.mm:appbrand0"}

}
# 启动会话
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
print("启动会话，打开微信中")
time.sleep(15)
print("已打开微信，开始进入小程序")


# 实现下滑
def swipedown():
    x = driver.get_window_size()["width"]
    y = driver.get_window_size()["height"]
    start_x = end_x = x * 0.5
    start_y = y * 0.2
    end_y = y * 0.7
    driver.swipe(start_x, start_y, end_x, end_y, 1000)


# 实现下滑，进入小程序
swipedown()
print("下滑完成，开始进入小程序")
# 打开指定的某个小程序
driver.find_element_by_android_uiautomator('new UiSelector().text("趣练习Pro")').click()

print('开始打开微信小程序-趣练习Pro')

time.sleep(15)
print("微信小程序已经完成加载")
# 获取所有的上下文
print(driver.contexts)

# 切换到webview
driver.switch_to.context("WEBVIEW_com.tencent.mm:toolsmp")

# 进入到微信小程序，定位里面的元素
# 操作web界面的元素一样的
print("开始定位h5元素及操作H5元素")

# aapt dump badging  apk包路径
# weditor
